Whenever the bit depth of an image needs to be reduced in a digital system a technique called dithering can be used to represent the original high bit depth image by fewer bits. The idea behind this is that by introducing small modulations to the image signal, before the truncation operation, the image signal after truncation to a lower bit depth will have a correct average value in an area as small as possible and/or a period as small as possible. A widely used technique is offset pattern dithering which can be implemented with relatively simple circuitry and which has predictable and reliable results.
Typically the size of the offset dither pattern is 2×2 or 4×4 pixels and the optional periodic modulation of these patterns occurs over 2 or 4 frames. Larger patterns can introduce too noticeable image artifacts, such as disturbing patterns or interferences with image details. Slower periodical modulations can introduce too noticeable flickering of the image.
Dithering is useful in many cases. Some example scenarios will now be described:                consider that an image generator renders a high resolution image with 10-bit precision per colour. The bit depth might need to be reduced to 8-bits per colour to use a standard transmission channel or a standard interconnection such as Digital Visual Interface (DVI) to connect the image generator to a display device such as a flat screen monitor or a projector. Dithering will cause the average of the 8-bit per colour output to be equal to the 10-bits per colour input in each 2×2 area of the image. Periodic modulation of the truncation process can be optionally applied to trade off between small spatial artifacts and temporal flickering.        consider that an image is processed or rendered with high bit depth but needs to be stored in a memory with limited density or bandwidth. Amongst other techniques, dithering can be applied to maintain colour information as much as possible while meeting the density or bandwidth limitation.        Digital displays as well as analog displays driven by a digital to analog converter have a finite bit depth per colour, often 8, 10 or 12 bits per colour. In many cases the digital image processing prior to the display needs more processing accuracy. Dithering is applied to resolve as much colour detail as possible when displaying the image. This is currently performed on display technologies such as Liquid Crystal Display (LCD), Liquid Crystal on Silicon (LCOS) and Digital Light Processing (DLP) based displays and is applicable to many other technologies.        
A practical example of a 2×2 dither pattern is illustrated in FIG. 1c. Consider an image is generated at 10-bits per colour and must be sent to a projector using an 8-bit DVI link. The image generator (IG) has 4 times more gradations for each colour than the link supports. That means a truncation of the 10-bit values must be made prior to transmission via the 8-bit DVI link. The link only accepts integer 8-bit values in a range from 0 (black) to 255 (white). The IG generates integer values in a range from 0 (black) to 1023 (white) in integer steps. Ignoring the range above 1020, this is practically equivalent to an IG generating values in a range from 0 (black) to 255 (white) in quarter steps. Dithering is the process to truncate these quarter step IG values to integer 8-bit values in such a way that a small area has the correct average value. Optionally the small area average accuracy can be improved by temporal dithering modulation.
When scanning a video image, a column and line counter is usually available to the processing. A simple pattern can be constructed elegantly with XOR (exclusive or) equations of some of the least significant bits of both counters. Optionally, the least significant bits of the frame counter can contribute to these equations.
A few typical sets of equations to generate such offset patterns are included here as examples. These offset values are then added to the video data prior to truncation. A first example of a commonly used 2-bit 2×2 spatially fixed dither pattern is shown in FIG. 1c. FIGS. 1a and 1b show how the pattern of FIG. 1c is obtained. The most significant bit P(1) is obtained by P(1)=column(0) XOR line(0) (FIG. 1a) and the least significant bit P(0) is obtained by P(0)=column(0) (FIG. 1b). FIG. 2e shows a 4-bit spatially fixed 4×4 pattern. The most significant bit P(3) is obtained by P(3)=column(0) XOR line(0) (FIG. 2a), the second most significant bit P(2) is obtained by P(2)=column(0) (FIG. 2b), the second least significant bit P(1) is obtained by P(1)=column(0) XOR column(1) XOR line(1) (FIG. 2c) and the least significant bit P(0) is obtained by P(0)=column(0) XOR line(1) (FIG. 2d).
A third example is derived from the previous one by extending the equations using the least significant bit of the frame counter to temporally modulate the pattern.
The equations above become:P(3)=column(0) XOR line(0) XOR frame(0)P(2)=column(0) XOR frame(0)P(1)=column(0) XOR column(1) XOR line(1) XOR frame(0)P(0)=column(0) COR line(1) XOR frame(0)
This set of equations generates a 4×4 spatial 4 bit spatial pattern as in FIG. 2e during the even frames and switches to a modulated version of the pattern as shown in FIG. 3 during the odd frames.
The pattern is temporally modulated in order to reduce the spatial visibility of the pattern but the disadvantage is potentially some slightly visible flickering when using such a temporally varying pattern as an offset to the video data prior to truncation. Therefore temporal modulation of the pattern is not always desirable.
The effect of such a commonly used offset pattern dithering on the video signal can be explained using the 2×2 pattern that was shown in FIG. 1c. Suppose video data is rendered at 10-bits per pixel per colour and is to be transmitted via an 8-bit DVI link. Imagine a dark sky before sunrise. The sky contains a subtle and continuous change in luminosity. In this case the rendered steps are a quarter of the quantization level to be applied to the signal prior to transmission. Imagine an area where one colour channel, say blue, fades from 7 to 8. The following values are rendered by the image generator: 7, 7.25, 7.5, 7.75 and 8. When truncating these values without dithering to integer values, the result becomes 7, 7, 7, 7 and 8. The subtle colour changes are clearly lost because of the truncation needed to quantize the signal to 8-bits per colour per pixel. When the repetitive 2×2 pattern in FIG. 1c is added to the video before the truncation operation, the result is different. Each of the original video levels causes the output of the dither circuitry to vary spatially, as shown in FIGS. 4b-4d. When video=7 the output shows no modulation or pattern, as shown in FIG. 4a. When video=7.25 the constant input value in a certain area will appear as a modulated value on the output of the dither circuitry as illustrated in FIG. 4b. Each 2×2 pixel area in the array of truncated pixel values has the correct average value. When video=7.5 the constant input value is displayed as a checker pattern as illustrated in FIG. 4c. Notice again the correct average value of the truncated addition in the right column. This value is transmitted to the display device. When video=7.75 the result is seen in FIG. 4d. 
Although the known dither patterns have the desired result on the average signal values of the video signal, the repetitive nature of the pattern has a discrete spectrum with high energy peaks, especially in the high frequencies. In some cases additional video processing is required after dithering has already been applied to the video signal. Some processing functions, such as digital filters or interpolations, can interfere with the dithering patterns and artifacts such as false contouring and/or banding can become clearly visible. The dithering process is often configured by a device manufacturer and is part of the internal processing of a device, such as an image generator, display or projector. Accordingly, it is not possible for a user to control the interference effects that occur in the image processing chain.
The known dither patterns used in image processing applications, especially where dithering which is applied immediately before bit depth reduction, are small patterns (e.g. 2×2 pixels or 4×4 pixels) as it has been considered that the pattern should have the effect of achieving an average value across as small an area as possible. A side effect of a small repetitive dither pattern is that the resulting spectrum is a discrete spectrum with high energy peaks, especially in the high frequencies.